home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / comms / mosiac / mosaic_1.2_amitcp / contrib / mshunt / mosaic_shunt.rexx < prev    next >
OS/2 REXX Batch file  |  1978-06-29  |  4KB  |  120 lines

  1. /*Shunt for Amiga Mosaic, takes filename from .mailcap file and sends it*/
  2. /*off to a user-definable viewer. After viewing,*/
  3. /*or failing to view, the program offers up a file requestor for the user*/
  4. /*to choose a location to save the file, or one can cancel to avoid saving*/
  5. /*(c) 1994 Aaron Weiss - Improveware - Improve it as you wish, since this*/
  6. /*is my first AREXX program and I'm sure it can be a whole hell of a lot*/
  7. /*better!                                                                */
  8.  
  9. /*---------------------------------------------------------------------------*/
  10. /*User definable variables                                                   */
  11.  
  12. savemode=2 /*1=Never Save, 2=Option w/Reqestor, 3=Always save, no req.       */
  13. savedrawer='temp:pix'     /*Set this string to the default drawer for saving */
  14.                           /*although you can change this in the file req.    */
  15.  
  16. /*Set these to the commandline to launch the particular viewer/player        */
  17. /*Include all parameters that you normally would, and use %s in the place    */
  18. /*of where the filename to view/play should go. Note that you CAN use        */
  19. /*the %s in multiple places in one line, should you want to.                 */
  20.  
  21. jpegviewer='graphics:pfastjpeg %s' 
  22. gifviewer='graphics:vt/vt screenmode="super72:super-high res laced" %s' 
  23. iffviewer='graphics:vt/vt screenmode="super72:super-high res laced" %s' 
  24. animviewer='graphics:vt/vt screenmode="super72:super-high res laced" %s'
  25. playiff='sound:oplay %s'
  26. playau='sound:oplay %s'
  27.  
  28. /*---------------------------------------------------------------------------*/
  29. /*That's it, no more user definable variables. Suffer.*/
  30. /*Venture below this point at your own risk!*/
  31.  
  32. Infile=ARG(1)
  33.  
  34. /*Let's figure out what type of file this momma jomma is*/
  35. FileName=Infile
  36. filehead=''
  37. if open(.IFile, FileName, 'R') then do
  38.                                  filehead = filehead || (READCH(.IFile,40))
  39.                                  close (FileName)
  40.                                end
  41.          
  42. SELECT
  43.  When INDEX(filehead,"GIF") > 0 then viewer=gifviewer
  44.  When INDEX(filehead,"JFIF") > 0 then viewer=jpegviewer
  45.  When INDEX(filehead,"ILBM") > 0 then viewer=iffviewer
  46.  When INDEX(filehead,"ANIM") > 0 then viewer=animviewer
  47.  When INDEX(filehead,"8SVX") > 0 then viewer=playiff
  48.  When INDEX(filehead,"snd") > 0 then viewer=playau
  49.  OTHERWISE viewer='none'
  50. END
  51.  
  52. /*Onto the show*/
  53.  
  54. /*First we need to create the commandline with filename in place of %s*/
  55.  
  56. filepos=1
  57. DO UNTIL filepos=0 
  58.  filepos=INDEX(viewer,"%s")
  59.  If filepos>0 Then 
  60.   DO
  61.    cmd1=LEFT(viewer,(filepos-1))
  62.    cmd2=RIGHT(viewer,LENGTH(viewer)-(filepos+1))
  63.    viewer=cmd1||Infile||cmd2
  64.   END 
  65. END 
  66.  
  67. /*Now create a little scriptfile to execute the command*/
  68.           
  69.       ADDRESS command
  70.       conwindow=">CON:0/0/320/100/Mosaic Shunt Message/Close"
  71.       CALL OPEN out, "t:rexx.tmp",write
  72.       CALL WRITELN out, viewer 
  73.       CALL CLOSE out
  74. if viewer~='none' Then 'execute' "t:rexx.tmp"
  75.                   Else 'echo "Could not identify file type!" >con:0/100/255/20/Shunt_Message/CLOSE/WAIT'
  76.                        
  77. /*And in the following mess we go about preparing to save the file, or not, */
  78. /*depending on the user setting at the top of this file*/
  79.  
  80. If savemode>1 Then 
  81. DO
  82. SaveFile=Infile
  83. Mark=LASTPOS("/",SaveFile)
  84. If Mark==0 Then 
  85.  Mark=LASTPOS(":",SaveFile)
  86. If Mark>0 Then 
  87.   SaveFile=Right(SaveFile,LENGTH(SaveFile)-Mark)
  88.  
  89. If savemode=2 Then
  90.  DO
  91. 'requestfile DRAWER' savedrawer 'FILE' SaveFile 'TITLE "Save This Baby Where?" > t:savefile'
  92. If rc~=0 Then DO
  93.                'echo "Save cancelled" >con:0/100/250/20/Shunt_Message/CLOSE/WAIT'
  94.                exit
  95.               END  
  96.          ELSE DO
  97. FileName='t:savefile'
  98. SaveFile=''     
  99.       if open(IFile, FileName, 'R') then do
  100.           do until eof(IFile)
  101.             SaveFile = SaveFile || (READLN(IFile))
  102.          end
  103.          end
  104.               END
  105.  END     
  106.  ELSE SaveFile=savedrawer ||'/'||SaveFile        
  107.  
  108. /*After all the above rigamarole, we've either got a filename to save to by now, */
  109. /*or else we've dropped out some time ago. So save it, McCloud. */
  110.  
  111. 'copy ' Infile Savefile
  112.     
  113. END
  114.  
  115. /*Yay! Let Mosaic have you back again. It misses you.*/
  116. exit
  117.          
  118.  
  119.  
  120.